package com.lanou.moving.entity;

import android.os.Parcel;
import android.os.Parcelable;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by dllo on 15/10/23.
 */
public class RankingListDetail implements Parcelable {
    private long comment_count;
    private long created_time;
    private String desc;
    private boolean favorite;
    private long favorite_count;
    private ImageEntity image;
    private long last_updated;
    private long listen_count;
    private String owner;
    private long period;
    private List<RankSongsEntity> rank_songs;
    private long ranklist_id;
    private long share_count;
    private long song_count;
    private long songlist_id;
    private List<SongsEntity> songs;
    private long status;
    private List<TagsEntity> tags;
    private String title;// "动听热歌榜 第 134 期"
    private long version;

    public long getComment_count() {
        return comment_count;
    }

    public void setComment_count(long comment_count) {
        this.comment_count = comment_count;
    }

    public long getCreated_time() {
        return created_time;
    }

    public void setCreated_time(long created_time) {
        this.created_time = created_time;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public boolean isFavorite() {
        return favorite;
    }

    public void setFavorite(boolean favorite) {
        this.favorite = favorite;
    }

    public long getFavorite_count() {
        return favorite_count;
    }

    public void setFavorite_count(long favorite_count) {
        this.favorite_count = favorite_count;
    }

    public ImageEntity getImage() {
        return image;
    }

    public void setImage(ImageEntity image) {
        this.image = image;
    }

    public long getLast_updated() {
        return last_updated;
    }

    public void setLast_updated(long last_updated) {
        this.last_updated = last_updated;
    }

    public long getListen_count() {
        return listen_count;
    }

    public void setListen_count(long listen_count) {
        this.listen_count = listen_count;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public long getPeriod() {
        return period;
    }

    public void setPeriod(long period) {
        this.period = period;
    }

    public List<RankSongsEntity> getRank_songs() {
        return rank_songs;
    }

    public void setRank_songs(List<RankSongsEntity> rank_songs) {
        this.rank_songs = rank_songs;
    }

    public long getRanklist_id() {
        return ranklist_id;
    }

    public void setRanklist_id(long ranklist_id) {
        this.ranklist_id = ranklist_id;
    }

    public long getShare_count() {
        return share_count;
    }

    public void setShare_count(long share_count) {
        this.share_count = share_count;
    }

    public long getSong_count() {
        return song_count;
    }

    public void setSong_count(long song_count) {
        this.song_count = song_count;
    }

    public long getSonglist_id() {
        return songlist_id;
    }

    public void setSonglist_id(long songlist_id) {
        this.songlist_id = songlist_id;
    }

    public List<SongsEntity> getSongs() {
        return songs;
    }

    public void setSongs(List<SongsEntity> songs) {
        this.songs = songs;
    }

    public long getStatus() {
        return status;
    }

    public void setStatus(long status) {
        this.status = status;
    }

    public List<TagsEntity> getTags() {
        return tags;
    }

    public void setTags(List<TagsEntity> tags) {
        this.tags = tags;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public long getVersion() {
        return version;
    }

    public void setVersion(long version) {
        this.version = version;
    }

    public static class ImageEntity implements Parcelable {
        private String pic;
        private long source;

        public String getPic() {
            return pic;
        }

        public void setPic(String pic) {
            this.pic = pic;
        }

        public long getSource() {
            return source;
        }

        public void setSource(long source) {
            this.source = source;
        }

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(this.pic);
            dest.writeLong(this.source);
        }

        public ImageEntity() {
        }

        protected ImageEntity(Parcel in) {
            this.pic = in.readString();
            this.source = in.readLong();
        }

        public static final Parcelable.Creator<ImageEntity> CREATOR = new Parcelable.Creator<ImageEntity>() {
            public ImageEntity createFromParcel(Parcel source) {
                return new ImageEntity(source);
            }

            public ImageEntity[] newArray(int size) {
                return new ImageEntity[size];
            }
        };
    }

    public static class RankSongsEntity implements Parcelable {
        private boolean _new;
        private long rank;
        private long song_id;

        public boolean is_new() {
            return _new;
        }

        public void set_new(boolean _new) {
            this._new = _new;
        }

        public long getRank() {
            return rank;
        }

        public void setRank(long rank) {
            this.rank = rank;
        }

        public long getSong_id() {
            return song_id;
        }

        public void setSong_id(long song_id) {
            this.song_id = song_id;
        }

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeByte(_new ? (byte) 1 : (byte) 0);
            dest.writeLong(this.rank);
            dest.writeLong(this.song_id);
        }

        public RankSongsEntity() {
        }

        protected RankSongsEntity(Parcel in) {
            this._new = in.readByte() != 0;
            this.rank = in.readLong();
            this.song_id = in.readLong();
        }

        public static final Parcelable.Creator<RankSongsEntity> CREATOR = new Parcelable.Creator<RankSongsEntity>() {
            public RankSongsEntity createFromParcel(Parcel source) {
                return new RankSongsEntity(source);
            }

            public RankSongsEntity[] newArray(int size) {
                return new RankSongsEntity[size];
            }
        };
    }

    public static class SongsEntity implements Parcelable {
        private long albumId;
        private String albumName;
        private String alias;
        private long audit;
        private List<AuditionListEntity> auditionList;
        private long commentCount;
        private long composerId;
        private String composerName;
        private String extendProperties;
        private long favorites;
        private boolean firstHit;
        private long lang;
        private String level;
        private long librettistId;
        private String librettistName;
        private List<LlListEntity> llList;
        private long mvBulletCount;
        private List<MvListEntity> mvList;
        private long mvPickCount;
        private String name;// 歌曲名
        private long operType;
        private long originalId;
        private long outFlag;
        private String outLinks;
        private List<OutListEntity> outList;
        private long producer;
        private long publisher;
        private long releaseYear;
        private String remarks;
        private RightKeyEntity rightKey;
        private long riskRank;
        private long singerId;
        private String singerName;
        private long singerSFlag;
        private long songId;
        private long status;
        private String tags;
        private long type;
        private List<UrlListEntity> urlList;

        public long getAlbumId() {
            return albumId;
        }

        public void setAlbumId(long albumId) {
            this.albumId = albumId;
        }

        public String getAlbumName() {
            return albumName;
        }

        public void setAlbumName(String albumName) {
            this.albumName = albumName;
        }

        public String getAlias() {
            return alias;
        }

        public void setAlias(String alias) {
            this.alias = alias;
        }

        public long getAudit() {
            return audit;
        }

        public void setAudit(long audit) {
            this.audit = audit;
        }

        public List<AuditionListEntity> getAuditionList() {
            return auditionList;
        }

        public void setAuditionList(List<AuditionListEntity> auditionList) {
            this.auditionList = auditionList;
        }

        public long getCommentCount() {
            return commentCount;
        }

        public void setCommentCount(long commentCount) {
            this.commentCount = commentCount;
        }

        public long getComposerId() {
            return composerId;
        }

        public void setComposerId(long composerId) {
            this.composerId = composerId;
        }

        public String getComposerName() {
            return composerName;
        }

        public void setComposerName(String composerName) {
            this.composerName = composerName;
        }

        public String getExtendProperties() {
            return extendProperties;
        }

        public void setExtendProperties(String extendProperties) {
            this.extendProperties = extendProperties;
        }

        public long getFavorites() {
            return favorites;
        }

        public void setFavorites(long favorites) {
            this.favorites = favorites;
        }

        public boolean isFirstHit() {
            return firstHit;
        }

        public void setFirstHit(boolean firstHit) {
            this.firstHit = firstHit;
        }

        public long getLang() {
            return lang;
        }

        public void setLang(long lang) {
            this.lang = lang;
        }

        public String getLevel() {
            return level;
        }

        public void setLevel(String level) {
            this.level = level;
        }

        public long getLibrettistId() {
            return librettistId;
        }

        public void setLibrettistId(long librettistId) {
            this.librettistId = librettistId;
        }

        public String getLibrettistName() {
            return librettistName;
        }

        public void setLibrettistName(String librettistName) {
            this.librettistName = librettistName;
        }

        public List<LlListEntity> getLlList() {
            return llList;
        }

        public void setLlList(List<LlListEntity> llList) {
            this.llList = llList;
        }

        public long getMvBulletCount() {
            return mvBulletCount;
        }

        public void setMvBulletCount(long mvBulletCount) {
            this.mvBulletCount = mvBulletCount;
        }

        public List<MvListEntity> getMvList() {
            return mvList;
        }

        public void setMvList(List<MvListEntity> mvList) {
            this.mvList = mvList;
        }

        public long getMvPickCount() {
            return mvPickCount;
        }

        public void setMvPickCount(long mvPickCount) {
            this.mvPickCount = mvPickCount;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public long getOperType() {
            return operType;
        }

        public void setOperType(long operType) {
            this.operType = operType;
        }

        public long getOriginalId() {
            return originalId;
        }

        public void setOriginalId(long originalId) {
            this.originalId = originalId;
        }

        public long getOutFlag() {
            return outFlag;
        }

        public void setOutFlag(long outFlag) {
            this.outFlag = outFlag;
        }

        public String getOutLinks() {
            return outLinks;
        }

        public void setOutLinks(String outLinks) {
            this.outLinks = outLinks;
        }

        public List<OutListEntity> getOutList() {
            return outList;
        }

        public void setOutList(List<OutListEntity> outList) {
            this.outList = outList;
        }

        public long getProducer() {
            return producer;
        }

        public void setProducer(long producer) {
            this.producer = producer;
        }

        public long getPublisher() {
            return publisher;
        }

        public void setPublisher(long publisher) {
            this.publisher = publisher;
        }

        public long getReleaseYear() {
            return releaseYear;
        }

        public void setReleaseYear(long releaseYear) {
            this.releaseYear = releaseYear;
        }

        public String getRemarks() {
            return remarks;
        }

        public void setRemarks(String remarks) {
            this.remarks = remarks;
        }

        public RightKeyEntity getRightKey() {
            return rightKey;
        }

        public void setRightKey(RightKeyEntity rightKey) {
            this.rightKey = rightKey;
        }

        public long getRiskRank() {
            return riskRank;
        }

        public void setRiskRank(long riskRank) {
            this.riskRank = riskRank;
        }

        public long getSingerId() {
            return singerId;
        }

        public void setSingerId(long singerId) {
            this.singerId = singerId;
        }

        public String getSingerName() {
            return singerName;
        }

        public void setSingerName(String singerName) {
            this.singerName = singerName;
        }

        public long getSingerSFlag() {
            return singerSFlag;
        }

        public void setSingerSFlag(long singerSFlag) {
            this.singerSFlag = singerSFlag;
        }

        public long getSongId() {
            return songId;
        }

        public void setSongId(long songId) {
            this.songId = songId;
        }

        public long getStatus() {
            return status;
        }

        public void setStatus(long status) {
            this.status = status;
        }

        public String getTags() {
            return tags;
        }

        public void setTags(String tags) {
            this.tags = tags;
        }

        public long getType() {
            return type;
        }

        public void setType(long type) {
            this.type = type;
        }

        public List<UrlListEntity> getUrlList() {
            return urlList;
        }

        public void setUrlList(List<UrlListEntity> urlList) {
            this.urlList = urlList;
        }

        public static class OutListEntity implements Parcelable {

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
            }

            public OutListEntity() {
            }

            protected OutListEntity(Parcel in) {
            }

            public static final Parcelable.Creator<OutListEntity> CREATOR = new Parcelable.Creator<OutListEntity>() {
                public OutListEntity createFromParcel(Parcel source) {
                    return new OutListEntity(source);
                }

                public OutListEntity[] newArray(int size) {
                    return new OutListEntity[size];
                }
            };
        }

        public static class AuditionListEntity implements Parcelable {
            private long bitRate;
            private long duration;
            private long size;
            private String suffix;
            private String typeDescription;
            private String url;

            public long getBitRate() {
                return bitRate;
            }

            public void setBitRate(long bitRate) {
                this.bitRate = bitRate;
            }

            public long getDuration() {
                return duration;
            }

            public void setDuration(long duration) {
                this.duration = duration;
            }

            public long getSize() {
                return size;
            }

            public void setSize(long size) {
                this.size = size;
            }

            public String getSuffix() {
                return suffix;
            }

            public void setSuffix(String suffix) {
                this.suffix = suffix;
            }

            public String getTypeDescription() {
                return typeDescription;
            }

            public void setTypeDescription(String typeDescription) {
                this.typeDescription = typeDescription;
            }

            public String getUrl() {
                return url;
            }

            public void setUrl(String url) {
                this.url = url;
            }

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
                dest.writeLong(this.bitRate);
                dest.writeLong(this.duration);
                dest.writeLong(this.size);
                dest.writeString(this.suffix);
                dest.writeString(this.typeDescription);
                dest.writeString(this.url);
            }

            public AuditionListEntity() {
            }

            protected AuditionListEntity(Parcel in) {
                this.bitRate = in.readLong();
                this.duration = in.readLong();
                this.size = in.readLong();
                this.suffix = in.readString();
                this.typeDescription = in.readString();
                this.url = in.readString();
            }

            public static final Parcelable.Creator<AuditionListEntity> CREATOR = new Parcelable.Creator<AuditionListEntity>() {
                public AuditionListEntity createFromParcel(Parcel source) {
                    return new AuditionListEntity(source);
                }

                public AuditionListEntity[] newArray(int size) {
                    return new AuditionListEntity[size];
                }
            };
        }

        public static class LlListEntity implements Parcelable {
            private long bitRate;
            private long duration;
            private long size;
            private String suffix;
            private String typeDescription;
            private String url;

            public long getBitRate() {
                return bitRate;
            }

            public void setBitRate(long bitRate) {
                this.bitRate = bitRate;
            }

            public long getDuration() {
                return duration;
            }

            public void setDuration(long duration) {
                this.duration = duration;
            }

            public long getSize() {
                return size;
            }

            public void setSize(long size) {
                this.size = size;
            }

            public String getSuffix() {
                return suffix;
            }

            public void setSuffix(String suffix) {
                this.suffix = suffix;
            }

            public String getTypeDescription() {
                return typeDescription;
            }

            public void setTypeDescription(String typeDescription) {
                this.typeDescription = typeDescription;
            }

            public String getUrl() {
                return url;
            }

            public void setUrl(String url) {
                this.url = url;
            }

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
                dest.writeLong(this.bitRate);
                dest.writeLong(this.duration);
                dest.writeLong(this.size);
                dest.writeString(this.suffix);
                dest.writeString(this.typeDescription);
                dest.writeString(this.url);
            }

            public LlListEntity() {
            }

            protected LlListEntity(Parcel in) {
                this.bitRate = in.readLong();
                this.duration = in.readLong();
                this.size = in.readLong();
                this.suffix = in.readString();
                this.typeDescription = in.readString();
                this.url = in.readString();
            }

            public static final Parcelable.Creator<LlListEntity> CREATOR = new Parcelable.Creator<LlListEntity>() {
                public LlListEntity createFromParcel(Parcel source) {
                    return new LlListEntity(source);
                }

                public LlListEntity[] newArray(int size) {
                    return new LlListEntity[size];
                }
            };
        }

        public static class MvListEntity implements Parcelable {

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
            }

            public MvListEntity() {
            }

            protected MvListEntity(Parcel in) {
            }

            public static final Parcelable.Creator<MvListEntity> CREATOR = new Parcelable.Creator<MvListEntity>() {
                public MvListEntity createFromParcel(Parcel source) {
                    return new MvListEntity(source);
                }

                public MvListEntity[] newArray(int size) {
                    return new MvListEntity[size];
                }
            };
        }

        public static class RightKeyEntity implements Parcelable {
            private String albumPackage;
            private List<MusicPackageEntity> musicPackage;
            private long orderType;
            private long paymentUnite;
            private long price;
            private String promotionPackage;
            private List<SongRightsEntity> songRights;
            private String vipFree;

            public String getAlbumPackage() {
                return albumPackage;
            }

            public void setAlbumPackage(String albumPackage) {
                this.albumPackage = albumPackage;
            }

            public List<MusicPackageEntity> getMusicPackage() {
                return musicPackage;
            }

            public void setMusicPackage(List<MusicPackageEntity> musicPackage) {
                this.musicPackage = musicPackage;
            }

            public long getOrderType() {
                return orderType;
            }

            public void setOrderType(long orderType) {
                this.orderType = orderType;
            }

            public long getPaymentUnite() {
                return paymentUnite;
            }

            public void setPaymentUnite(long paymentUnite) {
                this.paymentUnite = paymentUnite;
            }

            public long getPrice() {
                return price;
            }

            public void setPrice(long price) {
                this.price = price;
            }

            public String getPromotionPackage() {
                return promotionPackage;
            }

            public static class MusicPackageEntity{

            }

            public void setPromotionPackage(String promotionPackage) {
                this.promotionPackage = promotionPackage;
            }

            public List<SongRightsEntity> getSongRights() {
                return songRights;
            }

            public void setSongRights(List<SongRightsEntity> songRights) {
                this.songRights = songRights;
            }

            public String getVipFree() {
                return vipFree;
            }

            public void setVipFree(String vipFree) {
                this.vipFree = vipFree;
            }

            public static class SongRightsEntity implements Parcelable {
                private long bitRate;
                private boolean downBuyFlag;
                private boolean downFlag;
                private boolean listenBuyFlag;
                private boolean listenFlag;

                public long getBitRate() {
                    return bitRate;
                }

                public void setBitRate(long bitRate) {
                    this.bitRate = bitRate;
                }

                public boolean isDownBuyFlag() {
                    return downBuyFlag;
                }

                public void setDownBuyFlag(boolean downBuyFlag) {
                    this.downBuyFlag = downBuyFlag;
                }

                public boolean isDownFlag() {
                    return downFlag;
                }

                public void setDownFlag(boolean downFlag) {
                    this.downFlag = downFlag;
                }

                public boolean isListenBuyFlag() {
                    return listenBuyFlag;
                }

                public void setListenBuyFlag(boolean listenBuyFlag) {
                    this.listenBuyFlag = listenBuyFlag;
                }

                public boolean isListenFlag() {
                    return listenFlag;
                }

                public void setListenFlag(boolean listenFlag) {
                    this.listenFlag = listenFlag;
                }

                @Override
                public int describeContents() {
                    return 0;
                }

                @Override
                public void writeToParcel(Parcel dest, int flags) {
                    dest.writeLong(this.bitRate);
                    dest.writeByte(downBuyFlag ? (byte) 1 : (byte) 0);
                    dest.writeByte(downFlag ? (byte) 1 : (byte) 0);
                    dest.writeByte(listenBuyFlag ? (byte) 1 : (byte) 0);
                    dest.writeByte(listenFlag ? (byte) 1 : (byte) 0);
                }

                public SongRightsEntity() {
                }

                protected SongRightsEntity(Parcel in) {
                    this.bitRate = in.readLong();
                    this.downBuyFlag = in.readByte() != 0;
                    this.downFlag = in.readByte() != 0;
                    this.listenBuyFlag = in.readByte() != 0;
                    this.listenFlag = in.readByte() != 0;
                }

                public static final Parcelable.Creator<SongRightsEntity> CREATOR = new Parcelable.Creator<SongRightsEntity>() {
                    public SongRightsEntity createFromParcel(Parcel source) {
                        return new SongRightsEntity(source);
                    }

                    public SongRightsEntity[] newArray(int size) {
                        return new SongRightsEntity[size];
                    }
                };
            }

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
                dest.writeString(this.albumPackage);
                dest.writeList(this.musicPackage);
                dest.writeLong(this.orderType);
                dest.writeLong(this.paymentUnite);
                dest.writeLong(this.price);
                dest.writeString(this.promotionPackage);
                dest.writeTypedList(songRights);
                dest.writeString(this.vipFree);
            }

            public RightKeyEntity() {
            }

            protected RightKeyEntity(Parcel in) {
                this.albumPackage = in.readString();
                this.musicPackage = new ArrayList<MusicPackageEntity>();
                in.readList(this.musicPackage, List.class.getClassLoader());
                this.orderType = in.readLong();
                this.paymentUnite = in.readLong();
                this.price = in.readLong();
                this.promotionPackage = in.readString();
                this.songRights = in.createTypedArrayList(SongRightsEntity.CREATOR);
                this.vipFree = in.readString();
            }

            public static final Parcelable.Creator<RightKeyEntity> CREATOR = new Parcelable.Creator<RightKeyEntity>() {
                public RightKeyEntity createFromParcel(Parcel source) {
                    return new RightKeyEntity(source);
                }

                public RightKeyEntity[] newArray(int size) {
                    return new RightKeyEntity[size];
                }
            };
        }

        public static class UrlListEntity implements Parcelable {
            private long bitRate;
            private long duration;
            private long size;
            private String suffix;
            private String typeDescription;
            private String url;

            public long getBitRate() {
                return bitRate;
            }

            public void setBitRate(long bitRate) {
                this.bitRate = bitRate;
            }

            public long getDuration() {
                return duration;
            }

            public void setDuration(long duration) {
                this.duration = duration;
            }

            public long getSize() {
                return size;
            }

            public void setSize(long size) {
                this.size = size;
            }

            public String getSuffix() {
                return suffix;
            }

            public void setSuffix(String suffix) {
                this.suffix = suffix;
            }

            public String getTypeDescription() {
                return typeDescription;
            }

            public void setTypeDescription(String typeDescription) {
                this.typeDescription = typeDescription;
            }

            public String getUrl() {
                return url;
            }

            public void setUrl(String url) {
                this.url = url;
            }

            @Override
            public int describeContents() {
                return 0;
            }

            @Override
            public void writeToParcel(Parcel dest, int flags) {
                dest.writeLong(this.bitRate);
                dest.writeLong(this.duration);
                dest.writeLong(this.size);
                dest.writeString(this.suffix);
                dest.writeString(this.typeDescription);
                dest.writeString(this.url);
            }

            public UrlListEntity() {
            }

            protected UrlListEntity(Parcel in) {
                this.bitRate = in.readLong();
                this.duration = in.readLong();
                this.size = in.readLong();
                this.suffix = in.readString();
                this.typeDescription = in.readString();
                this.url = in.readString();
            }

            public static final Parcelable.Creator<UrlListEntity> CREATOR = new Parcelable.Creator<UrlListEntity>() {
                public UrlListEntity createFromParcel(Parcel source) {
                    return new UrlListEntity(source);
                }

                public UrlListEntity[] newArray(int size) {
                    return new UrlListEntity[size];
                }
            };
        }

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
            dest.writeLong(this.albumId);
            dest.writeString(this.albumName);
            dest.writeString(this.alias);
            dest.writeLong(this.audit);
            dest.writeTypedList(auditionList);
            dest.writeLong(this.commentCount);
            dest.writeLong(this.composerId);
            dest.writeString(this.composerName);
            dest.writeString(this.extendProperties);
            dest.writeLong(this.favorites);
            dest.writeByte(firstHit ? (byte) 1 : (byte) 0);
            dest.writeLong(this.lang);
            dest.writeString(this.level);
            dest.writeLong(this.librettistId);
            dest.writeString(this.librettistName);
            dest.writeTypedList(llList);
            dest.writeLong(this.mvBulletCount);
            dest.writeTypedList(mvList);
            dest.writeLong(this.mvPickCount);
            dest.writeString(this.name);
            dest.writeLong(this.operType);
            dest.writeLong(this.originalId);
            dest.writeLong(this.outFlag);
            dest.writeString(this.outLinks);
            dest.writeTypedList(outList);
            dest.writeLong(this.producer);
            dest.writeLong(this.publisher);
            dest.writeLong(this.releaseYear);
            dest.writeString(this.remarks);
            dest.writeParcelable(this.rightKey, 0);
            dest.writeLong(this.riskRank);
            dest.writeLong(this.singerId);
            dest.writeString(this.singerName);
            dest.writeLong(this.singerSFlag);
            dest.writeLong(this.songId);
            dest.writeLong(this.status);
            dest.writeString(this.tags);
            dest.writeLong(this.type);
            dest.writeTypedList(urlList);
        }

        public SongsEntity() {
        }

        protected SongsEntity(Parcel in) {
            this.albumId = in.readLong();
            this.albumName = in.readString();
            this.alias = in.readString();
            this.audit = in.readLong();
            this.auditionList = in.createTypedArrayList(AuditionListEntity.CREATOR);
            this.commentCount = in.readLong();
            this.composerId = in.readLong();
            this.composerName = in.readString();
            this.extendProperties = in.readString();
            this.favorites = in.readLong();
            this.firstHit = in.readByte() != 0;
            this.lang = in.readLong();
            this.level = in.readString();
            this.librettistId = in.readLong();
            this.librettistName = in.readString();
            this.llList = in.createTypedArrayList(LlListEntity.CREATOR);
            this.mvBulletCount = in.readLong();
            this.mvList = in.createTypedArrayList(MvListEntity.CREATOR);
            this.mvPickCount = in.readLong();
            this.name = in.readString();
            this.operType = in.readLong();
            this.originalId = in.readLong();
            this.outFlag = in.readLong();
            this.outLinks = in.readString();
            this.outList = in.createTypedArrayList(OutListEntity.CREATOR);
            this.producer = in.readLong();
            this.publisher = in.readLong();
            this.releaseYear = in.readLong();
            this.remarks = in.readString();
            this.rightKey = in.readParcelable(RightKeyEntity.class.getClassLoader());
            this.riskRank = in.readLong();
            this.singerId = in.readLong();
            this.singerName = in.readString();
            this.singerSFlag = in.readLong();
            this.songId = in.readLong();
            this.status = in.readLong();
            this.tags = in.readString();
            this.type = in.readLong();
            this.urlList = in.createTypedArrayList(UrlListEntity.CREATOR);
        }

        public static final Parcelable.Creator<SongsEntity> CREATOR = new Parcelable.Creator<SongsEntity>() {
            public SongsEntity createFromParcel(Parcel source) {
                return new SongsEntity(source);
            }

            public SongsEntity[] newArray(int size) {
                return new SongsEntity[size];
            }
        };
    }

    public static class TagsEntity implements Parcelable {

        @Override
        public int describeContents() {
            return 0;
        }

        @Override
        public void writeToParcel(Parcel dest, int flags) {
        }

        public TagsEntity() {
        }

        protected TagsEntity(Parcel in) {
        }

        public static final Parcelable.Creator<TagsEntity> CREATOR = new Parcelable.Creator<TagsEntity>() {
            public TagsEntity createFromParcel(Parcel source) {
                return new TagsEntity(source);
            }

            public TagsEntity[] newArray(int size) {
                return new TagsEntity[size];
            }
        };
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeLong(this.comment_count);
        dest.writeLong(this.created_time);
        dest.writeString(this.desc);
        dest.writeByte(favorite ? (byte) 1 : (byte) 0);
        dest.writeLong(this.favorite_count);
        dest.writeParcelable(this.image, 0);
        dest.writeLong(this.last_updated);
        dest.writeLong(this.listen_count);
        dest.writeString(this.owner);
        dest.writeLong(this.period);
        dest.writeTypedList(rank_songs);
        dest.writeLong(this.ranklist_id);
        dest.writeLong(this.share_count);
        dest.writeLong(this.song_count);
        dest.writeLong(this.songlist_id);
        dest.writeTypedList(songs);
        dest.writeLong(this.status);
        dest.writeTypedList(tags);
        dest.writeString(this.title);
        dest.writeLong(this.version);
    }

    public RankingListDetail() {
    }

    protected RankingListDetail(Parcel in) {
        this.comment_count = in.readLong();
        this.created_time = in.readLong();
        this.desc = in.readString();
        this.favorite = in.readByte() != 0;
        this.favorite_count = in.readLong();
        this.image = in.readParcelable(ImageEntity.class.getClassLoader());
        this.last_updated = in.readLong();
        this.listen_count = in.readLong();
        this.owner = in.readString();
        this.period = in.readLong();
        this.rank_songs = in.createTypedArrayList(RankSongsEntity.CREATOR);
        this.ranklist_id = in.readLong();
        this.share_count = in.readLong();
        this.song_count = in.readLong();
        this.songlist_id = in.readLong();
        this.songs = in.createTypedArrayList(SongsEntity.CREATOR);
        this.status = in.readLong();
        this.tags = in.createTypedArrayList(TagsEntity.CREATOR);
        this.title = in.readString();
        this.version = in.readLong();
    }

    public static final Parcelable.Creator<RankingListDetail> CREATOR = new Parcelable.Creator<RankingListDetail>() {
        public RankingListDetail createFromParcel(Parcel source) {
            return new RankingListDetail(source);
        }

        public RankingListDetail[] newArray(int size) {
            return new RankingListDetail[size];
        }
    };
}
